package com.logic.landseaserver.service;

import java.io.IOException;
import java.util.List;

import com.logic.common.exception.BusinessException;
import com.logic.common.service.ICRUDService;
import com.logic.landseaserver.domain.MonthCompleteWork;
import com.logic.landseaserver.domain.Monthly;
import com.logic.landseaserver.domain.ReportChronicle;
import com.logic.landseaserver.domain.ReportConstructPeople;
import com.logic.landseaserver.domain.ReportConstructPhoto;
import com.logic.landseaserver.domain.ReportConstructSchedule;
import com.logic.landseaserver.domain.ReportDesignEngineer;
import com.logic.landseaserver.domain.ReportFund;
import com.logic.landseaserver.domain.ReportMaterial;
import com.logic.landseaserver.domain.ReportPeopleNumber;
import com.logic.landseaserver.domain.Weather;
import com.logic.landseaserver.domain.WeekCompleteWork;
import com.logic.landseaserver.domain.Weekly;
import com.logic.landseaserver.ws.dto.MonthWeekDayReportDTO;
import com.logic.landseaserver.ws.dto.QueryMonthDTO;
import com.logic.landseaserver.ws.dto.QueryMonthWeekDayReport;
import com.logic.landseaserver.ws.dto.QueryRemouldProjectReportDTO;
import com.logic.landseaserver.ws.dto.QueryWeekDTO;
import com.logic.landseaserver.ws.dto.QueryYearDTO;
import com.logic.landseaserver.ws.dto.WeekReportDTO;
import com.logic.landseaserver.ws.dto.YearMonthDayReportDTO;

public interface IRemouldProjectReportService extends ICRUDService{

    WeekReportDTO getWeekReportDTO(Integer remouldProjectId)throws BusinessException;

	int insertWeekly(Weekly weekly)throws BusinessException,Exception;

	int insertWeather(Weather weather)throws BusinessException;

	int insertWeekCompleteWork(WeekCompleteWork weekCompleteWork)throws BusinessException;

	int insertReportMaterial(ReportMaterial reportMaterial)throws BusinessException;

	int insertReportPeopleNumber(ReportPeopleNumber reportPeopleNumber)throws BusinessException;

	int insertReportChronicle(ReportChronicle reportChronicle)throws BusinessException;

	int insertReportConstructSchedule(ReportConstructSchedule reportConstructSchedule)throws BusinessException;
	
	int insertMonthly(Monthly monthly)throws BusinessException;

	int insertMonthCompleteWork(MonthCompleteWork monthCompleteWork) throws BusinessException ;

	int insertReportReportFund(ReportFund reportFund) throws BusinessException ;

	int insertReportDesignEngineer(ReportDesignEngineer reportDesignEngineer) throws BusinessException ;

	int insertReportConstructPeople(ReportConstructPeople reportConstructPeople) throws BusinessException ;

	int insertReportConstructPhoto(ReportConstructPhoto reportConstructPhoto) throws BusinessException ;

    YearMonthDayReportDTO getYearMonthDayReportDTO(Integer id);

   // List<MonthWeekDayReportDTO> queryDTO(Integer id);

    void deleteMonthReport(Integer id);

    void deleteWeekReport(Integer id);

    void deleteDayReport(Integer id);

    List<String> selectYearByType(QueryYearDTO dto);

    List<String> selectMonthByType(QueryMonthDTO dto);

    List<String> selectWeekByType(QueryWeekDTO dto);

    List<QueryMonthWeekDayReport> queryListDTO(QueryRemouldProjectReportDTO dto);

    List<MonthWeekDayReportDTO> queryListDTOWithoutType(QueryRemouldProjectReportDTO dto);

    String getReportWeekPDF(int id)throws BusinessException, IOException;

    String getReportDayPDF(int id)throws BusinessException, IOException;

    String getReportMonthPDF(int id)throws BusinessException, IOException;


 
}
